<template>
  <div class="app-container">
    <div class="el-toolbar">
      <el-row style="margin-bottom: 1rem">
        <el-button type="primary" plain @click="exportData"><i class="fa fa-plus"/> 导出</el-button>
        <el-button type="success" plain @click="importData"><i class="fa fa-plus"/> 导入</el-button>
      </el-row>
    </div>
    <el-table
      :data="list"
      style="width: 100%"
      row-key="id"
      border
      lazy
      :load="load"
      :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
      <el-table-column
        prop="title"
        label="名称"
        width="150">
      </el-table-column>
      <el-table-column
        prop="createTime"
        label="创建时间">
      </el-table-column>
    </el-table>

    <el-dialog title="课程导入错误信息" :visible.sync="dialogImportErrorVisible">
      <el-table :data="gridData">
        <el-table-column property="errorMsg" label="错误详情"></el-table-column>
      </el-table>
    </el-dialog>

    <el-dialog title="导入" :visible.sync="dialogImportVisible" >
      <el-form label-position="right">
        <el-form-item label="文件">
          <el-upload
            :multiple="false"
            :on-success="onUploadSuccess"
            :action="BASE_URL+'/video/subject/importData'"
            class="upload-demo">
            <el-button size="small" type="primary">点击上传</el-button>
            <div slot="tip" class="el-upload__tip">只能上传xls文件，且不超过500kb</div>
          </el-upload>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogImportVisible = false">取消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
import subjectApi from "@/api/vid/subject"
import {getBaseURL} from "@/utils";
export default {
  data() {
    return {
      dialogImportVisible: false,
      dialogImportErrorVisible: false,
      gridData:[],
      list:[],
      BASE_URL: getBaseURL()
    }
  },
  created() {
    this.getSubList(0)
  },
  methods: {
    getSubList(id) {
      subjectApi.getChildList(id)
        .then(response => {
          this.list = response.data
        })
    },
    onUploadSuccess(res,file){
      if (res.code !== 200){
        this.$message.warning('上传成错误:'+res.message)
        return
      }
      if (res.data && res.data.length > 0){
        this.dialogImportErrorVisible = true
        this.gridData = res.data
      }else{
        this.$message.success('上传成功')
        this.dialogImportVisible = false
        file = null
      }
      this.getSubList(0)
    },
    importData() {
      this.dialogImportVisible = true
    },
    exportData(){
       window.open(`${this.BASE_URL}/video/subject/exportData`)
    },
    load(tree,treeNode,resolve){
      subjectApi.getChildList(tree.id)
        .then(response => {
          resolve(response.data)
        })
    }
  }
}
</script>

<style scoped lang="scss">

</style>
